
# 初始化
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
import json
from utils import print_json

_ = load_dotenv(find_dotenv())

client = OpenAI()

'''

- 这是 OpenAI 2024 年 8 月 6 日发布的新 API
- 未见国产大模型跟进，因为没那么容易跟进
- 但很可能又成为一个标准
- 比 JSON mode 更稳定，更容易控制
'''

from pydantic import BaseModel
from openai import OpenAI

client = OpenAI()

class CalendarEvent(BaseModel):
    name: str
    date: str
    address: str
    participants: list[str]

completion = client.beta.chat.completions.parse( # 使用 beta 接口
    model="gpt-4o-mini-2024-07-18",  # 必须是版本大于 gpt-4o-mini-2024-07-18 或 gpt-4o-2024-08-06 的模型
    messages=[
        {"role": "system", "content": "解析出事件信息。"},
        {"role": "user", "content": "一般在周一晚上，孙志岗会在他的视频号邀请一名 AI 全栈工程师课程的学员连麦直播。"},
    ],
    response_format=CalendarEvent,
)
event = completion.choices[0].message.parsed
print_json(event)